package com.cyru.statemachine.core;

/**
 * description: 动作
 *
 * @author zhangxuchuan
 * date 2022/5/1
 */
public interface Action<S, E, C> {

    /**
     * 执行
     * @param source  源状态
     * @param target  目标状态
     * @param event   事件
     * @param context 上下文
     */
    void execute(S source, S target, E event, C context);

}
